The present invention relates to a computer system running in an object oriented programming environment and more particularly to methods and means for associating objects to their presentation in the environment.
Authors of computer based multimedia presentations (titles) face the difficult task of creating scripts to control the objects in their title. These scripts, which are essentially a type of computer program, are needed to display objects having desired images, such as circles, rectangles, spreadsheets, etc. The writing of a script is frequently a complex and time consuming task that demands highly specialized skills. Typically, these skills are difficult to acquire and very few multimedia authors wish to spend the time to learn them.
Examples of multimedia scripting languages can be found in such computer program products as HyperCard, developed by Apple Computer, Inc., MacroMind Director, developed by MacroMedia Inc., and Authorware Professional from MacroMedia, Inc. These multimedia scripting languages require the multimedia author to learn all the intricacies of the scripting language and to develop scripts comprising several hundred lines of code to create desired presentations. This code is complex to develop and typically cannot be readily reused.
Further, these languages use a conventional, mostly non-object oriented approach to scripting. It is generally recognized that object oriented approaches have many advantages over non-object oriented approaches, such as the ability to easily reuse code and develop complex code in an efficient manner.
It is currently possible to associate images and sound to objects in prior art object oriented systems. For example, programming systems such as Smalltalk or C++ provide multiple inheritance classes which allow a "mixed in" class to add in methods for displaying images on the screen of a monitor to an existing (parent) class.
The object oriented approach of using multiple inheritance to display images allows for reuse of code to some extent, but there are still problems. For example, in order to mix in display methods, an author typically needs to create a new class in a programming environment, and needs to resolve conflicts for any methods that are defined by both the parent class and the "mix in" class.
The technique of multiple inheritance requires the author to (1) write a new class in order to use a certain display method and (2) have the knowledge and skill to resolve the conflicts between the classes. The use of this technique is typically found in programming environments involving compilers, linkers, and debuggers. As a result, this technique can only be learned and used after years of formal training. Thus, the technique of multiple inheritance is typically not available to a non-programmer author in an interactive real time environment where incremental experimentation allows for rapid learning and exploration.
Existing environments also do not provide a convenient mechanism for changing the appearance of an object over time while the program is running. The new class always inherits from the mix in class. In addition, the environment can result in a proliferation of confusing and complex classes.